In recent years, a multi-core CPU configuration wherein multiple cores are provided in a single central processing unit (CPU) has been widely utilized for information processing apparatuses.
Cores are the center of a CPU, and logic circuits for computations are implemented.
In a CPU in such a multi-core configuration, cores generally have similar configurations.
In a multi-core CPU, multiple processes can be executed in number which is equal to the number of cores provided in the CPU.
In the meantime, increasing the computation speed is the top-priority matter in high-performance computing (HPC) systems, such as super computers. An operating system (OS) is required for operating an information processing apparatus, but a portion of the CPU power is consumed for executing the operating system. Hence, an operating system is one of the factors which reduce the computation speed, and thus hinder high-speed computations.
To address this issue, in recent years, as CPUs for HPCSs, CPUs have been used which include multiple types of cores, i.e., cores for executing calculations (hereinafter, referred to as “computation core”) and core for executing an operating system (hereinafter, referred to as OS cores). Computation cores for executing calculations, only execute calculation processes that is executed by users on an information processing apparatus. In contrast, OS cores for executing the operating system, executes house keeping processes of the system, including input/output (IO) operations, such as reads from and/or writes to files required for calculations by the computation cores and telecommunications, monitors for the system operations, and management of the calculation resources.
The numbers of respective cores provided in a CPU vary, but typically, 16 computation cores and two OS cores are provided, for example.
When computation cores want to execute disk accesses, the computation cores issue IO requests. The IO requests from the computation cores are appropriately distributed among the OS cores by a load balancer in the operating system.
As an example, the computation cores cause a large number of IOs (e.g., disk accesses). In such a case, the OS cores are occupied by the IO processes for process of the IOs, and processes other than the IO processes are held waited until all of the IO processes are completed. In other words, such processes other than the IO processes are being waited.
However, such processes that are being waited include processes which are necessary for operation of the operating system and the system, and a long wait may negatively affect the operation of the information processing apparatus.
In order to execute such processes while minimizing the wait time, it is desirable to prevent processing time of OS cores (resources) from being occupied by processes in a particular type, such as IO processes.